The present invention relates to decoding a video bit stream. More particularly, the present invention relates to decoding elements of a video bit stream prior to performing a general data reconstruction.
Improvements in communication networks have led to new designs that support high bandwidths and multiple devices. In conjunction with the advent of improved communication networks, microprocessors with high operating frequencies and large memory storage are also being developed. Accordingly, the combination of high bandwidth communication networks and high speed microprocessors has resulted in standard text communication being replaced with multimedia communication. Multimedia communication involves using a combination of audio, video, text, or any combination thereof to communicate between multiple devices. A variety of standard multimedia protocols have been developed to support multimedia communication. For example, Moving Pictures Expert Group (xe2x80x9cMPEGxe2x80x9d) has developed MPEG-1 (coding of moving pictures and associated audio for digital storage media) and MPEG-2 (generic coding of moving pictures and associated audio).
FIG. 1 illustrates a typical system used to perform multimedia communication. In particular system 100 includes a video encoder 105 coupled to a communications channel 106. Communications channel 106, in turn, is coupled to a video decoder 107. Typically, the communications channel 106 includes an asynchronous transfer mode network, a phone line, or a frame relay network.
Encoder 105 is used to compress video data 110 and transmit the encoded data on communications channel 106. Subsequently, the transmitted data is decompressed by video decoder 107 and video data 110 is reconstructed on video out 195. As illustrated in FIG. 1, video encoder includes an encoder 120 coupled to and a variable length encoder 140. Encoder 120 includes a motion estimator 130. Motion estimator 130 exploits the temporal redundancies in video data 110 to generate compressed data. In particular, motion estimator 130 determines the change in pixel values between sets of blocks.
Encoder 120, on the other hand, comprises a discrete cosine transform (xe2x80x9cDCTxe2x80x9d) encoder that exploits the spatial redundancies in video data 110 to generate compressed data. In particular, a frame of data in video data 110 is typically divided into 8xc3x978 blocks of pixels. Subsequently, a two-dimensional DCT is applied to the block that results in an 8xc3x978 block of DCT coefficients consisting of a DC coefficient and sixty three AC coefficients. For Intra-coded Macroblocks, the DC coefficients of a given block are coded differentially with respect to a previous block. Typically, the differential coding of DC coefficients is performed for a slice of a picture. Intra AC coefficients, however, are quantized using a variable step size from block to block.
The compressed data streams are transferred to variable length encoder 140 where, for a given picture of video data 110, a first quantized IntraMacroBlock (xe2x80x9clntra-MBxe2x80x9d) is generated from a variable length code table. The Intra-MBs of the picture are coded differentially with respect to the previous adjacent Intra-MB. Typically, a main profile at main level (xe2x80x9cMP@MLxe2x80x9d) MPEG-2 system includes 1350 MacroBlocks (xe2x80x9cMBsxe2x80x9d) per picturexe2x80x94some of which some are Intra-MBs. In the prior art, a quantized MB includes four 8xc3x978 luminance (xe2x80x9cxcex3xe2x80x9d) blocks of quantized DCT coefficients and two 8xc3x978 chrominance blocks of quantized DCT coefficientsxe2x80x94a Cb block and a Cr block. After the MB generation, system mux 150 generates a transport stream or a program stream and the MBs are transmitted across communications channel 106.
The transmitted MBs are reconstructed in video decoder 107. In particular, system demux 160 performs the complement of system mux 150 and generates a string of MBs to variable length decoder 170. Variable length decoder 170 decodes the entire MB according to the variable length code table. Subsequently, the decoded MB is transferred to decoder 190 and motion compensator 180 where the MB is processed. Typically, decoder 190 and motion compensator 180 reside in a single computing engine that follows a very-long-instruction-word (xe2x80x9cVLIWxe2x80x9d) architecture. Accordingly, the MB processing which includes DC coefficient reconstruction and inverse quantization is performed within the VLIW processor. The VLIW processor allows video decoder 107 to execute complicated commands that yield high parallelism, as found in the reconstruction of multiple Intra-MBs. The VLIW processor further allows the video decoder to process large blocks of data in parallel. The use of a VLIW processor to perform data reconstruction on intra-coded blocks, however, results in numerous disadvantages.
One disadvantage results from the characteristic of the Intra-MB. In particular, Intra-MBs typically include DC coefficients inter-dispersed among AC coefficients. Thus, in order to process a string of transmitted Intra-MBs, the VLIW has to mask the blocks of each transmitted Intra-MB to isolate the DC coefficients and perform DC reconstruction. Another disadvantage results from the differential coding used to generate the DC coefficients. Specifically, the differential coding requires that the VLIW processor generate multiple memory address pointers to multiple DC coefficients. Yet another disadvantage results from the inverse quantization (xe2x80x9cIQxe2x80x9d) of the DC and AC coefficients for a given block. In particular, the IQ of AC coefficients comprises a plurality of steps including a multiplication operation. As previously described, DC coefficients, however, are coded differently from AC coefficients and need to be handled differently. Thus, the VLIW processor typically extracts the DC coefficient (using masks and gated logic) and replaces the DC coefficient with a value that accounts for the multiplication operation prior to the inverse quantization of the DC and AC coefficients.
The present invention provides a method for performing a coefficient reconstruction in a decoder. The method comprises receiving a transmitted coefficient of a first block. The method also comprises retrieving a former reconstructed value. Additionally, the method comprises executing a first arithmetic operation in the decoder to generate a reconstructed value of the transmitted coefficient. The first arithmetic operation is performed using the transmitted coefficient and the former reconstructed value. Finally, the method comprises replacing the former reconstructed value with the new reconstructed value.
The present invention also provides a system having a plurality of devices configured to generate a reconstructed coefficient. The system comprises a variable length decoder. For one embodiment, the variable length decoder is operable to receive a first transmitted Intra-Macroblock comprising a plurality of transmitted coefficients and generate an Intra-Macroblock comprising a plurality of reconstructed coefficient. The system further comprises a processor coupled to the variable length decoder. For another embodiment, the processor is operable to generate a picture from the Intra-Macroblock comprising a plurality of reconstructed coefficients.
Additionally, the present invention provides a method for performing inverse quantization in a decoder. The method comprises receiving a transmitted coefficient of a first block. The method also comprises retrieving a former reconstructed value. Additionally, the method comprises executing a first arithmetic operation in the decoder to generate a reconstructed value of the transmitted coefficient. For one embodiment, the first arithmetic operation is performed using the transmitted coefficient and the former reconstructed value. Furthermore, the method comprises generating an inverse quantized DC coefficient from the reconstructed value of the transmitted coefficient.
Other features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.